/**
 * Copyright(C): CETC-32
 * @Description: 数据管理文件接口实现
 * @author: youqing
 * @version: 1.0
 * @date: 2020/9/11 10:55
 * 更改描述：
 */
package com.cetc32.dh.service.impl;

import com.cetc32.dh.entity.DataFile;
import com.cetc32.dh.entity.DataMenu;
import com.cetc32.dh.entity.FileToMenu;
import com.cetc32.dh.mybatis.DataFileMapper;
import com.cetc32.dh.service.DataFileService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.cetc32.dh.mybatis.FileToMenuMapper;
import com.cetc32.dh.mybatis.DataMenuMapper;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @Title: DataFileServiceImpl
 * @Description:
 * @author: youqing
 * @version: 1.0
 * @date: 2020/11/21 11:04
 */
@Service
public class DataFileServiceImpl implements DataFileService {

    @Autowired
    public DataFileMapper dataFileMapper;

    @Autowired
    public FileToMenuMapper fileToMenuMapper;

    @Autowired
    public DataMenuMapper dataMenuMapper;

    /**
     * 获取所有文件数目
     * @return Integer
     */
    @Override
    public Integer count(){
        return dataFileMapper.countAll();
    }

    /**
     * 插入文件
     * @param dataFile
     * @return Integer
     */
    @Override
    public Integer insertDataFile(DataFile dataFile){
        return dataFileMapper.insertOne(dataFile);
    }

    /**
     * 更新文件
     * @param dataFile
     * @return Integer
     */
    @Override
    public Integer updatebyId(DataFile dataFile){
        return dataFileMapper.updateById(dataFile);
    }

    /**
     * 根据文件id删除文件
     * @param id
     * @return Integer
     */
    @Override
    public  Integer deleteById(Long id){
        return dataFileMapper.deleteById(id);
    }

    /**
     * 根据文件id查询文件
     * @param id
     * @return DataFile
     */
    @Override
    public DataFile queryById(Long id){
        return dataFileMapper.queryById(id);
    }

    /**
     * 根据文件id查询文件所在的目录节点
     * @param fileId
     * @return List<DataMenu>
     */
    @Override
    public List<DataMenu> showMenusByFileId(Long fileId){
        List<FileToMenu> fileIds=fileToMenuMapper.selectByFileId(fileId);
        List<DataMenu> dataMenuList=new ArrayList<DataMenu>();
        for(int i=0;i<fileIds.size();i++){
            Long menuId=fileIds.get(i).getMenuId();
            dataMenuList.add(dataMenuMapper.queryById(menuId));
        }
        return dataMenuList;
    }

//    @Override
//    public List<DataFile> queryByFileStorageId(Long fileStorageId){
//        return dataFileMapper.queryByFileStorageId(fileStorageId);
//    }

    /**
     * 根据文件创建时间time查询文件
     * @param time
     * @return List<DataFile>
     */
    @Override
    public List<DataFile> queryByTime(Date time){
        return dataFileMapper.queryByTime(time);
    }

    /**
     * 根据文件区域region查询文件
     * @param region
     * @return List<DataFile>
     */
    @Override
    public List<DataFile> queryByRegion(String region){
        return dataFileMapper.queryByRegion(region);
    }

    /**
     * 根据文件安全性fileSecurity查询文件
     * @param fileSecurity
     * @return List<DataFile>
     */
    @Override
    public List<DataFile> queryAllByFileSecurity(String fileSecurity){
        return dataFileMapper.queryAllByFileSecurity(fileSecurity);
    }

}
